import { MeshStandardMaterial, MeshStandardMaterialParameters } from "../../thirdparty/three/imports";
import { Material3D } from "./Material3D";

export interface MeshStandardMaterial3D
{
    get _material(): MeshStandardMaterial;
    set _material(v: MeshStandardMaterial);
}

export class MeshStandardMaterial3D extends Material3D
{
    get color()
    {
        return this._material.color;
    }
    set color(v)
    {
        this._material.color = v;
    }

    get emissive()
    {
        return this._material.emissive;
    }
    set emissive(v)
    {
        this._material.emissive = v;
    }

    get metalness()
    {
        return this._material.metalness;
    }
    set metalness(v)
    {
        this._material.metalness = v;
    }

    get roughness()
    {
        return this._material.roughness;
    }
    set roughness(v)
    {
        this._material.roughness = v;
    }

    get flatShading()
    {
        return this._material.flatShading;
    }
    set flatShading(v)
    {
        this._material.flatShading = v;
    }

    get emissiveIntensity()
    {
        return this._material.emissiveIntensity;
    }
    set emissiveIntensity(v)
    {
        this._material.emissiveIntensity = v;
    }

    constructor(parameters?: MeshStandardMaterialParameters)
    {
        super();
        this._material = new MeshStandardMaterial(parameters);
    }
}
